home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / General / DR1.#1 68K Pascal ƒ / MWPascal 68K 1.0d5 Notes < prev    next >
Text File  |  1994-02-11  |  5KB  |  115 lines

  1. Metrowerks 68K Pascal release notes 
  2. ===================================
  3.  
  4. Version: 1.0d5
  5. Date:    February 9, 1994 
  6. Author:  Marcel Achim
  7.  
  8.  
  9. If you encounter undefined symbols during your link, be sure to add 
  10. Pascal/RT.lib to your project.
  11.  
  12.  
  13.     - Accelerated symbol tables manipulations.
  14.     - standard memory management functions fixed.
  15.     - variant record tags are aligned as in MPW.
  16.     - variant record size is ajusted accordingly.
  17.     - variant record selector accepts ranges, ie. id1 .. id2 : (..)
  18.     - procedure calls w/o () are now checked for missing formal parameters.
  19.     - positionning of errors in source file is fixed.
  20.     - find definition works.
  21.     - functions' popup fixed.
  22.     - reading and writing of packed arrays is fixed for files and SIOUX.
  23.     - external C variables must be declared accroding to the following syntax :
  24.         C; id {',' id} : Type ; ['FAR' | 'EXTERNAL']
  25.       the C directive comes ahead of variable declarations and lasts until the Type.
  26.     - far data is activated. Declaration syntax for variables is :
  27.         id {',' id} : Type ';' ['FAR' | 'EXTERNAL'] ';'
  28.       these directives are valide only at the unit/program level.
  29.     - Standard op BSET, BCLR, BTST fixed.
  30.     - Write of boolean values allowed.
  31.     - compatibility between ranges of integer and longints.
  32.     - multiple references between variables in nested functions bad codegen.
  33.     - inner functions have an extra number to make them uniquely defined.
  34.     - linker error messages are now displayed.
  35.     - output of boolean values to file and windows.
  36.     - redundant loads skipped in fp by-value passing.
  37.     - IOResult returns and integer now.
  38.     - mark and release accept any pointer type now.
  39.     - the C compiler's assembler is integrated, the function's syntax is :
  40.         ProcedureHeading 'ASM' ';' { ConstDecl VarDecl TypeDecl }
  41.             'BEGIN'    AssemblerStatements 'END' ';'
  42.       example :
  43.         FUNCTION foo ( VAR x : INTEGER ) : INTEGER; ASM;
  44.         BEGIN
  45.             movea.l    x,a0
  46.             ...
  47.             move    d0,8(a7)
  48.             rts
  49.         END;
  50.  
  51.     - ranges take the smallest possible size.
  52.     - by-value floating point values are passed as in MPW Pascal.
  53.     - some fixes to the preprocessor (no more infinite loop, unrecognized $I directive).
  54.     - function results used in castings and writeln (occured with parameterless functions).
  55.     - ORD4 behaviour similar to ORD's.
  56.     - ABS accepts ranges now.
  57.     - casting of integers to packed arrays.
  58.     - structured function result followed by selector as l-values.
  59.     - assignment of set constructors to small sets.
  60.  
  61.     - linkage conventions match MPW Pascal's except for FP.
  62.     - function return values cannot be assigned in an inner scope.
  63.     - the binary symbol tables are now compressed, so you have to patch
  64.        Pascal/RT.lib and Pascal/MacOS.lib
  65.     - PasLibIntf.p and IntEnv.p are components of Pascal/RT.lib
  66.  
  67. Restrictions & wildlife (these features will disappear in the next release)
  68.     - exit not permitted through multiple scopes.
  69.     - no runtime range or overflow checking.
  70.     - all logical operations are short-circuit.
  71.     - see Preprocessor below.
  72.     - FPU code generation for runtime math operations is hosed, so don't
  73.       use the mc68881 switch.
  74.     - writeln(boolean) not supported.
  75.     - LONGINT not support as variant case tag type.
  76.     - irrelevant warning messages with extended error checking.
  77.     - constant string indexing is not supported (ie. '0123456789ABCDEF'[idx] )
  78.     - NEW allocates memory for the biggest case possible.
  79.     - ** operator not supported yet.
  80.  
  81.     - Find Reference goes directly to ThinkReference™.
  82.  
  83. Extensions
  84.     - QuickDraw global variables (thePort, ...) are now contained in a record variable
  85.       named qd. (See Sillyballs.p or TubeTest.p, to see its usage).
  86.     - Procedural types are supported, see the documentation ...
  87.     - Scope searching rules can be changed by using unitname.objname syntax. This option
  88.       is controled by the 'Language''s qualident switch.
  89.     - Objects can be propagated through USES clauses with the Uses propagation switch.
  90.     - Directives in the prefix file must use the preprocessor's syntax.
  91.     - Screen oriented I/O are triggered by the first I/O call made without a file descriptor. 
  92.  
  93. Preprocessor
  94.     - conditional compilation is supported.
  95.     - the following options are not supported, but will be
  96.         $MC680x0, $MC6888x, $OV, $R, $SC, $W, $D, $Z, 
  97.     - the following options are not supported, and won't be
  98.         $B, $C, $J, $H, $N, $A1, $A5, $E, $K, $P, $PUSH, $POP
  99.  
  100. Interfaces
  101.     - The interfaces provided with the compiler are only there for reference purpose,
  102.       the compiler uses binary tables in MacOS.lib (which must be added to your project file).
  103.  
  104. Debugger support
  105.     - standard .SYM generation, works fine with Jasik's the Debugger™, except for
  106.       sets which are not MPW. In some cases, code of nested routines is badly displayed.
  107.  
  108. Examples
  109.     - Have fun.
  110.  
  111. Marcel Achim
  112. Metrowerks, Inc.
  113. Internet:  achim@metrowerks.ca
  114.  
  115.